﻿<?php 

class StatistiquesModel extends CI_Model {
    
    public $listeResponse;
    public $listequestion;
    public $listeModuleAll;
    public $titreStatQuestionParModule;
    public $listeSemestre;
    public $titreStatnNbUserParModule;
    public $listeModule;
    public $listeNbUser;
    public $titreStatnbReponsePourToutModule;
    public $listeNbReponse;
    
    function StatistiquesModel()
    {
        // Call the Model constructor
       // parent::Model();
    }      
    
     function getData()
    {        
        return array(            
            'listeReponse'=>$this->listeResponse ,
            'listequestion'=>$this->listequestion ,
            'listeModuleAll'=>$this->listeModuleAll,
            'titreStatQuestionParModule'=>$this->titreStatQuestionParModule,
            'listeSemestre'=>$this->listeSemestre,
            'titreStatnNbUserParModule'=>$this->titreStatnNbUserParModule,
            'listeModule'=>$this->listeModule,
            'listeNbUser'=>$this->listeNbUser,
            'titreStatnbReponsePourToutModule'=>$this->titreStatnbReponsePourToutModule,
            'listeNbReponse'=>$this->listeNbReponse
        );
    }    
    
    function getnbUserParModule()
    {        
        $lesemestre="";
        $libelleSem="";             
        $idEnseignant=-1;
        if (isset($_POST["choixSemestreStat"]) && $_POST["choixSemestreStat"]!=-1)
        {
            $lesemestre=$_POST["choixSemestreStat"];        
            $libelleSem = " du ".$this->listeSemestre[array_search($lesemestre,$this->listeSemestre)]->libelle;
        }   
        if($this->session->userdata('typeuser')=="2")
        {
            $idEnseignant=$this->session->userdata('id');
        }
                
        $qry_res=$this->db->query("call stat_nbUserParModule('".$lesemestre."',".$idEnseignant.")");       
        
        $res = $qry_res->result();
        $stringResult="";
        $stringQuestion="";
        if($qry_res->num_rows()>0)
        {
           $stringResult.="{colorByPoint: true,name:'Nombre de personne',data:[";
            foreach ($res as $lgn)
            {
                $stringResult.=$lgn->nbUser.",";
               
                $stringQuestion.="'".str_replace("'"," ",$lgn->nom)."',";
            }
            $stringResult = substr($stringResult, 0,-1);
            $stringResult.="]}";
            $stringQuestion= substr($stringQuestion, 0,-1);
            
            $this->titreStatnNbUserParModule = "Nombre de personnes inscrites par module"  ;
            $this->listeModule = $stringQuestion;
            $this->listeNbUser =  $stringResult;
        }   
        $qry_res->next_result(); // Dump the extra resultset.
        $qry_res->free_result();
        
    }
    
    function getListemoduleSemestre()
    {        
        $query1= $this->db->query("call getSemestre(2015,2025)");    
        $this->listeSemestre = $query1->result();  
        $query1->next_result(); // Dump the extra resultset.
        $query1->free_result();       
                
        $this->db->select('nom,idmodule');
        $this->db->from('module'); 
        if($this->session->userdata('typeuser')=="2")
        {
            $this->db->where('idenseignant',$this->session->userdata('id'));            
        }
        $this->listeModuleAll =  $this->db->get();
    } 
        
    function getStatQuestionParModule()
    {
        $lemodule=1;
        $lesemestre="";
        $libelleSem="";
        $idEnseignant=-1;
        
        if (isset($_POST["choixModuleStat"]))
        {
            $lemodule=$_POST["choixModuleStat"];
        }       
        
        if (isset($_POST["choixSemestreStat"]) && $_POST["choixSemestreStat"]!=-1)
        {
            $lesemestre=$_POST["choixSemestreStat"];        
            $libelleSem = " du ".$this->listeSemestre[array_search($lesemestre,$this->listeSemestre)]->libelle;
        }   
        
         if($this->session->userdata('typeuser')=="2")
        {
            $idEnseignant=$this->session->userdata('id');
        }
                
        $qry_res=$this->db->query("call stat_questionParModule('".$lesemestre."',".$lemodule.",".$idEnseignant.")");              
        $res = $qry_res->result();     
        
        $stringResult="";
        $stringQuestion="";
        if($qry_res->num_rows()>0)
        {
           $stringResult.="{colorByPoint: true,name:'".str_replace("'"," ",$qry_res->result()[0]->nom)."',data:[";
            foreach ($res as $lgn)
            {
                $stringResult.=$lgn->nbReponse.",";
                $stringQuestion.="'".$lgn->Question."',";
            }
            $stringResult = substr($stringResult, 0,-1);
            $stringResult.="]}";
            $stringQuestion= substr($stringQuestion, 0,-1);
            
            $this->titreStatQuestionParModule = str_replace("'"," ",$qry_res->result()[0]->nom) .$libelleSem."<br/> Nombre de personne ayant répondu par question"  ;
            $this->listequestion = $stringQuestion;
            $this->listeResponse =  $stringResult;
        }       
        $qry_res->next_result(); // Dump the extra resultset.
        $qry_res->free_result();
    }
    
    function getnbReponsePourToutModule()
    {        
        $lesemestre="";
        $libelleSem="";             
        
        if (isset($_POST["choixSemestreStat"]) && $_POST["choixSemestreStat"]!=-1)
        {
            $lesemestre=$_POST["choixSemestreStat"];        
            $libelleSem = " du ".$this->listeSemestre[array_search($lesemestre,$this->listeSemestre)]->libelle;
        }   
                
        $qry_res=$this->db->query("call stat_module('".$lesemestre."')");       
        
        $res = $qry_res->result();
        $stringResult="";
       
        if($qry_res->num_rows()>0)
        {
           $total=0;
            foreach ($res as $lgn1)
            {
                $total+=$lgn1->nbreponse;             
               
            }
            
            $stringResult.="{type:'pie',name:'Répartition des réponses par module',data:[";
            foreach ($res as $lgn)
            {
                $stringResult.="['".str_replace("'"," ",$lgn->nom)."',".number_format(($lgn->nbreponse*100)/$total,2,"."," ")."],";
            }
            $stringResult = substr($stringResult, 0,-1);
            $stringResult.="]}";          
            
            $this->titreStatnbReponsePourToutModule = "Répartition des réponses par module"  ;          
            $this->listeNbReponse =  $stringResult;
        }   
        $qry_res->next_result(); // Dump the extra resultset.
        $qry_res->free_result();
        
    }
    
    
    //$this->session->userdata('typeuser')=="2" -> enseignant
    //$this->session->userdata('id')
    //$this->session->userdata('typeuser')=="1" -> etudiant
}
